// 模拟 lodash 中的函数组合的方法 _.flowRight()


const reverse = arr => arr.reverse()

const first = arr => arr[0]

const toUpper = s => s.toUpperCase()



// function compose(...args) {
//   return function (val) {
//     return args.reverse().reduce(function (acc, fn) {
//       return fn(acc)
//     }, val)
//   }
// }

const compose = (...args) => (val) => args.reverse().reduce((acc, fn) => fn(acc), val)

const f = compose(toUpper, first, reverse)


console.log(f(['aaf', 'bbf', 'ccf'])) // CCF